constructor() {

owner = msg.sender;

}

function addNewStudent(string calldata newStudentName,

string calldata newStudentDob, string calldata

newStudentGrade) public returns(uint){

if (msg.sender != owner) {

return 0;

}

uint newEnrollmentNumber = ++latestEnrollmentNumber;

students.push(Student({

name: newStudentName,

dob: newStudentDob,

grade: newStudentGrade,

enrollmentNumber: newEnrollmentNumber

}));

return newEnrollmentNumber;

}

function retrieveGrade(uint studentEnrollmentNumber)

public view returns(string memory){

for (uint i=0; i < students.length; i++) {

if (students[i].enrollmentNumber ==

studentEnrollmentNumber) {

return students[i].grade;

}

}

}

}

2.5.24 Lab 2

Now, let’s rewrite the contract of Lab1 as Lab2 using more than one

contracts and instantiating one within the other:

// SPDX-License-Identifier: SOME IDENTIFIER